Outer
Outer[f,list1,list2,…] gives the generalized outer product of the listi, forming all possible combinations of the lowest‐level elements in each of them, and feeding them as arguments to f.
Outer[f,list1,list2,…,n] treats as separate elements only sublists at level n in the listi.
Outer[f,list1,list2,…,n1,n2,…] treats as separate elements only sublists at level ni in the corresponding listi.
Please visit the official Wolfram Language Reference for more details and examples on core symbols.